//: C20:ListRobustness.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// lists are harder to break
#include <list>
#include <iostream>
using namespace std;

int main()
{
    list<int> li(100, 0);
    list<int>::iterator i = li.begin();
    for (int j = 0; j < li.size() / 2; j++)
        i++;
    // Walk the iterator forward as you perform
    // a lot of insertions in the middle:
    for (int k = 0; k < 1000; k++)
        li.insert(i++, 1); // No problem
    li.erase(i);
    i++;
    *i = 2; // Oops! It's invalid
} ///:~
